﻿namespace PrismEx.Fixtures
{
    using System;

    using Microsoft.Practices.Prism.Events;

    public interface ITestDomain<TEventType>
    {
        ITestDomain<TEventType> WithEventAggregator(IEventAggregator eventAggregator);

        ITestDomain<TEventType> WithSubscriptionDelegate(Action<TEventType> subscriptionDelegate);

        ITestDomain<TEventType> WithEvent(TEventType @event);

        void Publish();

        void Publish(TEventType @event);
    }
}